<?php
namespace app\controller;

use app\controller\BaseController;
use app\controller\FormValidator\PersonnelFormValidator;
use model\CampQuery;
use model\PaysQuery;
use model\Personnel;
use model\PersonnelQuery;
use Symfony\Component\HttpFoundation\Request;

class PersonnelController extends BaseController
{
    public function newAction(Request $request)
    {
        $session = $this->getSession();
        $flashBag = $this->getFlashBag();
         
        if($request->isMethod('POST'))
        {
            $form = $request->request->all();
            $validator = new PersonnelFormValidator($form);
            $errors = $validator->isValid();
            if(is_bool($errors))
            {
                $camps = PaysQuery::create()->findOneById($form['camps_id']);
               
                
                $date = \DateTime::createFromFormat('j-M-Y',$form['date_naissance']);
                
                $personnel = new Personnel();
                $personnel->setIdCamp($camps);
                $personnel->setNom($form['nom']);
                $personnel->setPrenom($form['prenom']);
                $personnel->setSexe($form['sexe']);
                $personnel->setDateNaissance($date);
                $personnel->setNationalite($form['nationalite']);
                $personnel->setPoste($form['poste']);
                $personnel->save();
                
                //$session->set('user',$admin);
                //var_dump($this->getUser()); die('oki 4');
                
                $flashBag->add('success', 'Nouveau personnel crée avec succès');
                
                return $this->redirect($this->generateUrl('admin_home',array())); // Si il y a des paramêtres dans la route les mettre dans le tableau
                
            }
            else
            {
                $flashBag->add('warning', "Les champs suivant ne sont pas valides ".  implode(', ', $errors));
            }
        }
        
        $camps = CampQuery::create()->find(); 
        
        return $this->render('admin/personnel/newPersonnel.php', 
                array('camps'=>$camps));
    }
    
    public function listAction(Request $request)
    {
        $personnels = PersonnelQuery::create()->find();
        
        return $this->render('admin/personnel/list.php', 
                array('personnel' => $personnels,
                ));
    }
}